﻿#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include<stdbool.h>

//双链表

#define _CRT_SECURE_NO_WARNINGS 1

//双链表结构
typedef int LTDataType;
typedef struct ListNode
{
	LTDataType data;
	struct ListNode* prev;//指向上一个节点
	struct ListNode* next;//指向下一个节点

}ListNode;


//初始化
void LTInit(ListNode** pphead);
//销毁链表
void LTDestory(ListNode* phead);
//尾插法：
void LTBushBack(ListNode* phead, LTDataType x);
//头插法：
void LTPushFront(ListNode* phead, LTDataType x);
//尾删
void LTPopBack(ListNode* phead);
//头删
void LTPopFront(ListNode* phead);

bool LTEmpty(ListNode* phead);
void LTPrint(ListNode* phead);

//查找元素 找pos
ListNode* LTFind(ListNode* phead, LTDataType x);

//在pos位置之后插⼊数据----在pos位置之前插入数据自行实现
void LTInsert(ListNode* pos, LTDataType x);

//删除pos位置的节点
void LTErase(ListNode* pos);
